package org.dromara.iot.domain.bo;

import io.github.linpeilie.annotations.AutoMapper;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.dromara.common.core.validate.AddGroup;
import org.dromara.common.core.validate.EditGroup;
import org.dromara.common.mybatis.core.domain.BaseEntity;
import org.dromara.iot.domain.IotUpkeepInfo;

import java.util.Date;

/**
 * 电梯保养信息业务对象 iot_upkeep_info
 *
 * @author lsl
 * @date 2024-06-14
 */
@Data
@EqualsAndHashCode(callSuper = true)
@AutoMapper(target = IotUpkeepInfo.class, reverseConvertGenerate = false)
public class IotUpkeepInfoBo extends BaseEntity {

    /**
     * 保养ID
     */
    @NotNull(message = "保养ID不能为空", groups = {EditGroup.class})
    private Long upkeepId;

    /**
     * 关联电梯ID
     */
    @NotNull(message = "关联电梯ID不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long elevatorId;

    /**
     * 关联模板ID
     */
    @NotNull(message = "关联模板ID不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long templateId;

    /**
     * 保养单号
     */
    @NotBlank(message = "保养单号不能为空", groups = {AddGroup.class, EditGroup.class})
    private String upkeepCode;

    /**
     * 电梯名称
     */
    @NotBlank(message = "电梯名称不能为空", groups = {AddGroup.class, EditGroup.class})
    private String elevatorName;

    /**
     * 电梯识别码
     */
    @NotBlank(message = "电梯识别码不能为空", groups = {AddGroup.class, EditGroup.class})
    private String identifyCode;

    /**
     * 使用单位
     */
    @NotBlank(message = "使用单位不能为空", groups = {AddGroup.class, EditGroup.class})
    private String useUnit;

    /**
     * 维保单位
     */
    @NotBlank(message = "维保单位不能为空", groups = {AddGroup.class, EditGroup.class})
    private String maintenanceUnit;

    /**
     * 保养类型
     */
    @NotBlank(message = "保养类型不能为空", groups = {AddGroup.class, EditGroup.class})
    private String upkeepType;

    /**
     * 保障状态(1.正常，2.超期)
     */
    @NotBlank(message = "保障状态(1.正常，2.超期)不能为空", groups = {AddGroup.class, EditGroup.class})
    private String upkeepState;

    /**
     * 维保人
     */
    @NotBlank(message = "维保人不能为空", groups = {AddGroup.class, EditGroup.class})
    private String applicant;

    /**
     * 截止时间
     */
    @NotNull(message = "截止时间不能为空", groups = {AddGroup.class, EditGroup.class})
    private Date overTime;

    /**
     * 开始时间
     */
    @NotNull(message = "开始时间不能为空", groups = {AddGroup.class, EditGroup.class})
    private Date startTime;

    /**
     * 保养时长
     */
    @NotBlank(message = "保养时长不能为空", groups = {AddGroup.class, EditGroup.class})
    private String upkeepDate;

    /**
     * 保养位置经度
     */
    @NotBlank(message = "保养位置经度不能为空", groups = {AddGroup.class, EditGroup.class})
    private String longitude;

    /**
     * 保养位置纬度
     */
    @NotBlank(message = "保养位置纬度不能为空", groups = {AddGroup.class, EditGroup.class})
    private String latitude;

    /**
     * 机房图片
     */
    @NotBlank(message = "机房图片不能为空", groups = {AddGroup.class, EditGroup.class})
    private String roomImg;

    /**
     * 机房备注
     */
    @NotBlank(message = "机房备注不能为空", groups = {AddGroup.class, EditGroup.class})
    private String roomRemark;

    /**
     * 层站图片
     */
    @NotBlank(message = "层站图片不能为空", groups = {AddGroup.class, EditGroup.class})
    private String floorImg;

    /**
     * 层站备注
     */
    @NotBlank(message = "层站备注不能为空", groups = {AddGroup.class, EditGroup.class})
    private String floorRemark;

    /**
     * 轿厢图片
     */
    @NotBlank(message = "轿厢图片不能为空", groups = {AddGroup.class, EditGroup.class})
    private String capsulesImg;

    /**
     * 轿厢备注
     */
    @NotBlank(message = "轿厢备注不能为空", groups = {AddGroup.class, EditGroup.class})
    private String capsulesRemark;

    /**
     * 井道图片
     */
    @NotBlank(message = "井道图片不能为空", groups = {AddGroup.class, EditGroup.class})
    private String shaftImg;

    /**
     * 井道备注
     */
    @NotBlank(message = "井道备注不能为空", groups = {AddGroup.class, EditGroup.class})
    private String shaftRemark;

    /**
     * 提交人签名
     */
    @NotBlank(message = "提交人签名不能为空", groups = {AddGroup.class, EditGroup.class})
    private String referUserSign;

    /**
     * 审核人签名
     */
    @NotBlank(message = "审核人签名不能为空", groups = {AddGroup.class, EditGroup.class})
    private String auditUserSign;

    /**
     * 提交人姓名
     */
    @NotBlank(message = "提交人姓名不能为空", groups = {AddGroup.class, EditGroup.class})
    private String referUser;

    /**
     * 提交时间
     */
    @NotBlank(message = "提交时间不能为空", groups = {AddGroup.class, EditGroup.class})
    private String referTime;

    /**
     * 审核人姓名
     */
    @NotBlank(message = "审核人姓名不能为空", groups = {AddGroup.class, EditGroup.class})
    private String auditUser;

    /**
     * 审核时间
     */
    @NotBlank(message = "审核时间不能为空", groups = {AddGroup.class, EditGroup.class})
    private String auditTime;

    /**
     * 提交人头像
     */
    @NotBlank(message = "提交人头像不能为空", groups = {AddGroup.class, EditGroup.class})
    private Long avatar;

    /**
     * 备注
     */
    @NotBlank(message = "备注不能为空", groups = {AddGroup.class, EditGroup.class})
    private String remark;
    /**
     * 1.维保人提交  2.审核人审核
     */
    private String type;
    /**
     * 审核状态（1.通过，2.不通过）
     */
    private String auditStatus;
    /**
     * 评分
     */
    private String scoreMark;
    /**
     * 审核意见
     */
    private String auditIdea;
}
